HASSAN OMOTOBA's profile

ATM MIMICKED INTERFACE

Project: ATM Mimicked Interfaced 
The video above shows the simulated result of the codes uploaded on a PIC18F452 using MickroC PIC IDE and compiler.
// Lcd pinout settings
sbit LCD_RS at RD4_bit;
sbit LCD_EN at RD5_bit;
sbit LCD_D7 at RD3_bit;
sbit LCD_D6 at RD2_bit;
sbit LCD_D5 at RD1_bit;
sbit LCD_D4 at RD0_bit;

// Pin direction
sbit LCD_RS_Direction at TRISD4_bit;
sbit LCD_EN_Direction at TRISD5_bit;
sbit LCD_D7_Direction at TRISD3_bit;
sbit LCD_D6_Direction at TRISD2_bit;
sbit LCD_D5_Direction at TRISD1_bit;
sbit LCD_D4_Direction at TRISD0_bit;


#define Enter 10


char KeypadPort at PORTB;


// valid password


int passwordChecker(char rec_pass[]);

void main_menu();

void salutation();


void main() {

        char store_pass[4];

        char keyPress = 0, text[2];
        
        int password;



        Keypad_Init(); // intiallize keypads
        
    Lcd_Init();
   
    salutation();

    Lcd_Out(3,5,"_");

    Lcd_Out(3,6,"_");

    Lcd_Out(3,7,"_");

    Lcd_Out(3,8,"_");

   
    do
        {
                do{
                    
                    keyPress = Keypad_Key_Click();

                     switch (keyPress) {
      
      case  1: keyPress = 1; break; // 1        
      case  2: keyPress = 2; break; // 2
      case  3: keyPress = 3; break; // 3
      //case  4: keyPress = 65; break; // A
      case  5: keyPress = 4; break; // 4
      case  6: keyPress = 5; break; // 5
      case  7: keyPress = 6; break; // 6
      //case  8: keyPress = 66; break; // B        
      case  9: keyPress = 7; break; // 7
      case 10: keyPress = 8; break; // 8
      case 11: keyPress = 9; break; // 9
      //case 12: keyPress = 67; break; // C

      case 13: keyPress = 0; break;
      case 14: keyPress = 48; break;
      case 15: keyPress = 0; break;
     // case 16:
     
    }
}while(!keyPress);
                               
                
                //if(keyPress == Enter) 
               
                Lcd_Out(3,5, "*");

                store_pass[0] = keyPress;

                

               
                do{

                    keyPress = Keypad_Key_Click();

                    switch (keyPress) {
      
      case  1: keyPress = 1; break; // 1        
      case  2: keyPress = 2; break; // 2
      case  3: keyPress = 3; break; // 3
      //case  4: keyPress = 65; break; // A
      case  5: keyPress = 4; break; // 4
      case  6: keyPress = 5; break; // 5
      case  7: keyPress = 6; break; // 6
      //case  8: keyPress = 66; break; // B        
      case  9: keyPress = 7; break; // 7
      case 10: keyPress = 8; break; // 8
      case 11: keyPress = 9; break; // 9
      //case 12: keyPress = 67; break; // C

      case 13: keyPress = 0; break;
      case 14: keyPress = 48; break;
      case 15: keyPress = 12; break;
     // case 16:
     
    }

                }while(!keyPress);


                Lcd_Out(3,6,"*");

                store_pass[1] = keyPress;

               

                do{

                    keyPress = Keypad_Key_Click();

                    switch (keyPress) {
      
      case  1: keyPress = 1; break; // 1        
      case  2: keyPress = 2; break; // 2
      case  3: keyPress = 3; break; // 3
      //case  4: keyPress = 65; break; // A
      case  5: keyPress = 4; break; // 4
      case  6: keyPress = 5; break; // 5
      case  7: keyPress = 6; break; // 6
      //case  8: keyPress = 66; break; // B        
      case  9: keyPress = 7; break; // 7
      case 10: keyPress = 8; break; // 8
      case 11: keyPress = 9; break; // 9
      //case 12: keyPress = 67; break; // C

      case 13: keyPress = 0; break;
      case 14: keyPress = 48; break;
      case 15: keyPress = 0; break;
     // case 16:
     
    }

                }while(!keyPress);


                Lcd_Out(3,7,"*");

                if(keyPress == 48)
                keyPress = 0;

                store_pass[2] = keyPress;

               


                do{

                    keyPress = Keypad_Key_Click();

                    switch (keyPress) {
      
      case  1: keyPress = 1; break; // 1        
      case  2: keyPress = 2; break; // 2
      case  3: keyPress = 3; break; // 3
      //case  4: keyPress = 65; break; // A
      case  5: keyPress = 4; break; // 4
      case  6: keyPress = 5; break; // 5
      case  7: keyPress = 6; break; // 6
      //case  8: keyPress = 66; break; // B        
      case  9: keyPress = 7; break; // 7
      case 10: keyPress = 8; break; // 8
      case 11: keyPress = 9; break; // 9
      //case 12: keyPress = 67; break; // C

      case 13: keyPress = 0; break;
      case 14: keyPress = 48; break;
      case 15: keyPress = 0; break;
     // case 16:
     
    }

                }while(!keyPress);


                Lcd_Out(3,8,"*");

                store_pass[3] = keyPress;

                

                
                do{
                    keyPress = Keypad_Key_Click();

                    switch (keyPress) {
      
      case  1: keyPress = 0; break; // 1        
      case  2: keyPress = 0; break; // 2
      case  3: keyPress = 0; break; // 3
      //case  4: keyPress = 65; break; // A
      case  5: keyPress = 0; break; // 4
      case  6: keyPress = 0; break; // 5
      case  7: keyPress = 0; break; // 6
      //case  8: keyPress = 66; break; // B        
      case  9: keyPress = 0; break; // 7
      case 10: keyPress = 0; break; // 8
      case 11: keyPress = 0; break; // 9
      //case 12: keyPress = 67; break; // C

      case 13: keyPress = 10; break;
      case 14: keyPress = 0; break;
      case 15: keyPress = 0; break;
     // case 16:
     
    }
                    
                }while(!keyPress);

                                           
if(keyPress == Enter)
                {
                password = passwordChecker(store_pass);
                }
               
                
                               

        }while(password != 1);

        main_menu();
        
}


/**************************************************
        Check the input passwords
**************************************************/

int passwordChecker(char rec_pass[])
{
    char valid_pass[4] = {3,1,0,7};
    
    int i=0, count=0;

    for(i=0; i<4; i++)
    {
    if(rec_pass[i] == valid_pass[i])
    count++;
    }



    if(count == 4)
        return(1);

    else
    Lcd_Out(3,2, "Incorrect password");

    return(0);
}



/**************************************************
       Display the Main Menu
**************************************************/
void main_menu(){

    Lcd_Cmd(_LCD_CLEAR);
    Lcd_Out(1, 5, "HGO's Bank");
    Lcd_Out(2,1, "1.Balance");
    Lcd_Out(2,11, "3.Withdraw");
    Lcd_Out(4,1, "2.Airtime");
    Lcd_Out(4,11, "4.Transfer");

    // interrupt will be use for selection
    
}


void salutation(){
     int m;
     Lcd_Cmd(_LCD_CLEAR);
        
     Lcd_Out(1,1,"Welcome To HGO Bank");
        
     Lcd_Out(2,1,"Enter Your password");
        
     for(m = 0; m<4 ; m++)
     {      
            Lcd_Cmd(_LCD_SHIFT_LEFT);
            delay_ms(300);
     }

    
     for(m = 0; m<4 ; m++)
     {      
            Lcd_Cmd(_LCD_SHIFT_RIGHT);
            delay_ms(300);
     }
}
ATM MIMICKED INTERFACE
Published:

ATM MIMICKED INTERFACE

Published: